//package com.jiaai.web.zfp.callback;
//
//import com.alibaba.dubbo.config.annotation.Reference;
//import com.alibaba.fastjson.JSONObject;
//import com.jiaai.auth.model.AccessUser;
//import com.jiaai.pay.IPayAPI;
//import com.jiaai.pay.entitiy.VPay;
//import com.jiaai.util.ConstantUtils;
//import com.jiaai.util.RestResult;
//import com.jiaai.util.RestResultGenerator;
//import com.jiaai.web.zfp.callback.entity.SyncNotifyEntity;
//import comm.utils.pay.alipay.Alipay;
//import org.springframework.web.bind.annotation.*;
//
//import java.math.BigDecimal;
//import java.util.TreeMap;
//
///**
// * class_name:UnifiedSyncNotifyController
// * describe:------------------>统一的同步支付通知
// * create_user:张昉平
// * create_date:2018/2/2
// * create_time:16:45
// */
//@RestController
//@RequestMapping("/api/v1/app/syncNotify")
//public class UnifiedSyncNotifyController {
//
//    @Reference
//    private IPayAPI payAPI;
//
//    @PostMapping("")
//    public RestResult payNotify(@RequestBody SyncNotifyEntity entity, @SessionAttribute(ConstantUtils.ACCESS_USER)AccessUser user){
//        if (entity.getType() == 1){
//            //
//        }else if (entity.getType() == 2){
////            return handleAlipay(entity, user.getUserId());
//        }
//
//        return RestResultGenerator.genSuccessResult("大爷的,没有开通这个支付模块");
//    }
//
//    //处理支付宝, 返回用户余额
//    private RestResult handleAlipay(SyncNotifyEntity entity, String userId) {
//        JSONObject object = JSONObject.parseObject(entity.getContent());
//        Integer resultStatus = object.getInteger("resultStatus");
//
//        JSONObject result = JSONObject.parseObject(entity.getResult());
//        String sign = result.getString("sign");//获取签名
//        JSONObject pay_respones = JSONObject.parseObject(result.getString("alipay_trade_app_pay_response"));//具体参数
//
//        VPay pay = payAPI.getOneOrder(pay_respones.getString("out_trade_no"));//查出对应的订单
//        if (pay == null) return RestResultGenerator.genErrorResult("没有该订单呀");
//        if (!pay.getmId().equals(userId)) return RestResultGenerator.genErrorResult("你大爷的,这不是你的订单呀");
//        pay.setTransactionId(pay_respones.getString("trade_no"));
//
//        if (resultStatus != 9000){
//            //状态码非9000,不往下做处理
//            payAPI.checkAlipaySync(resultStatus, pay);
//            return RestResultGenerator.genErrorResult("大爷, 支付失败");
//        }
//
//        TreeMap<String, String> map = new TreeMap<>();
//        map.put("code", pay_respones.getString("code"));
//        map.put("msg", pay_respones.getString("msg"));
//        map.put("app_id", pay_respones.getString("app_id"));
//        map.put("out_trade_no", pay_respones.getString("out_trade_no"));
//        map.put("trade_no", pay_respones.getString("trade_no"));
//        map.put("total_amount", pay_respones.getString("total_amount"));
//        map.put("seller_id", pay_respones.getString("seller_id"));
//        map.put("charset", pay_respones.getString("charset"));
//        map.put("timestamp", pay_respones.getString("timestamp"));
//        map.put("sign", sign);
//        map.put("sign_type", "RSA2");
//
//        boolean flag = Alipay.asynCheck(map, pay.getVerifySecret());//签名检查
//        if (!flag) return RestResultGenerator.genErrorResult("签名不对呀");//签名不对
//        if (pay_respones.getBigDecimal("total_amount").compareTo(pay.getPrice()) != 0) return RestResultGenerator.genErrorResult("数额不对");//数额不对
//        if (!pay_respones.getString("app_id").equals(pay.getVerifyId())) return RestResultGenerator.genErrorResult("应用id不对");//应用id不对
//        BigDecimal res = payAPI.checkAlipaySync(resultStatus, pay);
//        return RestResultGenerator.genSuccessResult(res);//返回用户余额
//    }
//
//    public static void main(String[] args) {
//        JSONObject jsonObject = new JSONObject();
//        jsonObject.put("memo", "sss");
//        jsonObject.put("result", "{\"alipay_trade_app_pay_response\":{\"code\":\"10000\",\"msg\":\"10000\",\"app_id\":\"10000\",\"out_trade_no\":\"10000\",\"trade_no\":\"10000\",\"total_amount\":\"10000\",\"seller_id\":\"10000\",\"charset\":\"10000\",\"timestamp\":\"10000\"},\"sign\":\"111\",\"sign_type\":\"111\"}");
//        jsonObject.put("resultStatus", "4000");
//
//        System.out.println(jsonObject.toJSONString());
//    }
//
//}
